package _go

func longestCommonPrefix(strs []string) string {
	l := len(strs)

	//0值判断 整体是0 或者 首字符为0直接返回
	if l == 0 || len(strs[0]) == 0 {
		return ""
	}
	//就一个直接返回
	if l == 1 {
		return strs[0]
	}

	//比较的字符  之比较一位就好了
	tmp := strs[0][:1]

	//记录公共子串的长度
	i := 0

done:
	for {
		for _, v1 := range strs {
			//需要比较的字为空 直接返回
			if tmp == "" {
				break done
			}
			//需要比较的字符长度 根当前字符一样直接返回
			//字符不一致 直接返回
			if len(v1) == i || tmp != v1[i:i+1] {
				break done
			}
		}
		//向后推进
		i++
		//长度到头了 直接返回
		if len(strs[0]) == i {
			break
		}
		//返回结果
		tmp = strs[0][i : i+1]
	}

	return strs[0][:i]
}
